package com.cuixichang.minimalism.transfer.factory;

import com.cuixichang.minimalism.transfer.dto.IPermissionDTO;
import com.cuixichang.minimalism.transfer.page.IPermissionPageRequest;
import com.cuixichang.minimalism.transfer.page.IPermissionRequest;
import com.cuixichang.minimalism.transfer.vo.IPermissionVO;
import com.cuixichang.minimalism.transfer.po.IPermission;
import org.mapstruct.Builder;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

/**
 * 系统权限表对象适配器
 *
 * @author cuixichang
 * @date 2024-12-18
 */
@Mapper(builder = @Builder(disableBuilder = true))
public interface IPermissionAssembler {

    IPermissionAssembler INSTANCT = Mappers.getMapper(IPermissionAssembler.class);

    IPermissionDTO convertDto(IPermissionRequest request);

    IPermissionDTO convertDto(IPermissionPageRequest request);

    IPermission convertPo(IPermissionDTO dto);

    IPermissionDTO convertDto(IPermission po);

    IPermissionVO convertVo(IPermissionDTO dto);
}